Users of a computer may wish to install additional applications on the computer or to upgrade existing applications to a new version. For example, a user who would like to use a spreadsheet program may wish to install MICROSOFT OFFICE® or may wish to upgrade an existing MICROSOFT OFFICE® installation to a newer version.
The installation of an application may begin with install media. For example, the install media may be a CD, a DVD, a remote computer, or a remote computer-readable medium. The user may execute a program on the install media that may lead the user through a multi-step process of installing the application. The installation process may involve specifying where the application is to be installed, which users will have access to the application, options for the application, and whether the user agrees to a licensing agreement.
The installation of an application on a computer may change aspects of the operating system and may impact other applications previously installed on the computer. For example, installing an application on a computer may include adding files to the computer or altering existing files. Some of these files may be stored in a location specific to the application being installed and some of these files may be stored in locations where they may be shared with other applications or with the operating system.
The installation of an application may also change the environment of the operating system. For example, applications on a computer may interact with the operating system, and accessing or modifying the environment may facilitate interaction with the operating system. Applications may also interact with other applications, and accessing or modifying the environment may facilitate interaction with other applications. Further, the user may set options or other configuration values in the environment to control aspects of installed applications.
The environment of an operating system may be specified in numerous ways, one of which may be a centralized repository of information. For example, in the MICROSOFT WINDOWS® operating system, the environment includes the registry, which includes key-value pairs. In the Apple OS X operating system the environment may include plist or property list files. In the LINUX® operating system, the environment may include various files stored in a directory with the path “/etc.”
In some situations, it may be advantageous to use virtual applications instead of conventional applications. A virtual application is different from a conventional application in that the installation of a virtual application does not modify files on the operating system and also does not modify the environment of the operating system.
Where a user uses virtual applications instead of or in addition to conventional applications, the user may have a virtual application client installed on his or her computer. The virtual application client may have a list of virtual applications that are available to the user. Where a user wishes to use one of the virtual applications and that virtual application is not already present on the user's computer, the virtual application client may download a virtual package from a server and install the virtual application on the user's computer. The server may be operated by an administrator who makes the virtual packages available to users.
FIG. 1 illustrates an exemplary computer network 100 in which one or more users 130 may use virtual applications. Users 130 may be connected to a computer network 120, such as the Internet. A server 110 may also be connected to the network, and server 110 may have one or more virtual packages corresponding to virtual applications that are available to users 130. Users 130 may download virtual packages from server 110 and then use the virtual packages to install virtual applications on the users' computers.
FIG. 2 illustrates a computer 200 with a virtual application client 240 that allows a user to run virtual applications. Computer 200 may have an operating system 220. Operating system 220 may have files 225 and an environment 230. Operating system 220 may also have conventional applications (not shown). Computer 200 may also have one or more virtual applications, for example, virtual application 260 and virtual application 280. Virtual application client 240 provides an operating environment for virtual applications as if the virtual applications were executing in an environment created by operating system 220 without requiring the virtual applications to interact directly with operating system 220. Consequently, each virtual application may have its own files and environment. For example, virtual application 260 may have files 265 and environment 270, and virtual application 280 may have files 285 and environment 290.
When a user requests to run a virtual application, virtual application client 240 may check to see if the user has previously installed the virtual application and may also check to see if a newer version of the virtual application is available. Where the user has not previously installed the virtual application or a newer version is available, virtual application client 240 may download a virtual package from server 110 corresponding to the virtual application. After the virtual application client downloads the virtual package, the virtual application may then be available on the user's computer.
The virtual packages may be generated in advance. In an enterprise setting, a network administrator, for example, may create virtual packages intended for use on user computers throughout the enterprise. Creating a virtual package may involve the use of a sequencer. To create a virtual package with a sequencer, the administrator may install a conventional application from install media to a computer and follow the multi-step process of configuring the computer to execute the conventional application. The sequencer may record all changes made to the computer during the install process and create a virtual package that embodies changes made to the computer during installation of the conventional application. In some scenarios, the network administrator may require advice of an expert, which may be obtained by engaging the expert directly to make the virtual package or by accessing information that the expert has written and made available.